﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLBH.DataModel;

namespace QLBH.Model.Controller
{
    public class NCCController : QLBHEntityBase<NHACUNGCAP>
    {
        public static QLBHEntityBase<NHACUNGCAP> GetInstance()
        {
            return new NCCController();
        } 
        public override NHACUNGCAP Add(NHACUNGCAP entity)
        {
            if (FindBy(it => it.NCCCODE == entity.NCCCODE).FirstOrDefault() != null)
            {
                throw new Exception("Mã NCC đã tồn tại!");
            }
            if (!String.IsNullOrEmpty(entity.EMAIL))
            {
                if (FindBy(it => it.EMAIL == entity.EMAIL).FirstOrDefault() != null)
                {
                    throw new Exception("Email đã được sử dụng!");
                }
            }
            return base.Add(entity);
        }
        public override NHACUNGCAP Edit(NHACUNGCAP entity)
        {
            if (FindBy(it => it.NCCCODE == entity.NCCCODE && 
                it.NCCUID != entity.NCCUID).FirstOrDefault() != null)
            {
                throw new Exception("Mã NCC đã tồn tại!");
            }
            if (!String.IsNullOrEmpty(entity.EMAIL))
            {
                if (FindBy(it => it.EMAIL == entity.EMAIL && 
                    it.NCCUID != entity.NCCUID).FirstOrDefault() != null)
                {
                    throw new Exception("Email đã được sử dụng!");
                }
            }
            return base.Edit(entity);
        }
    }
}
